package cn.itcast.java.process;

/**
 * Author itcast
 * Date 2021/10/7 9:20
 * 获取到所有的水仙花数, 并将结果打印到控制台上.
 * 解释:
 * 1.水仙花数是一个3位数的整数.
 * 2.该数字的各个位数立方和相加等于它本身.
 * 3.例如: 153就是水仙花数, 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 = 153
 */
public class For3Demo {
    public static void main(String[] args) {
        /**
         * 开发步骤：
         * 1.定义一个变量，用于接收是水仙花数
         * 2.循环变量100~999之间的所有三位数的数
         * 3.求出每个数的个位、十位、百位
         * 4.立方累加求和
         * 5.判断当前的值是否等于累加和，如果满足条件输出水仙花数
         */

        //2.循环变量100~999之间的所有三位数的数
        for (int i = 100; i < 1000; i++) {
            //3.求出每个数的个位、十位、百位
            int unit = i % 10;
            int tens = i / 10 % 10;
            int hundreds = i / 100 % 10;
            //4.立方累加求和
            //1.定义一个变量，用于接收是水仙花数
            int sum = unit * unit * unit + (int) Math.pow(tens, 3) + (int) Math.pow(hundreds, 3);
            //5.判断当前的值是否等于累加和，如果满足条件输出水仙花数
            if(sum == i){
                System.out.println("当前的数是水仙花数："+i);
            }
        }

    }
}
